Dev coolfish#33
Merged
Merged
Conversation
从 Box3Blocks 中拆分出 JS 运行时为独立模组: 服务端功能: - Rhino JS 引擎,/box3script 统一命令(eval / file / run / list / on / off / reload / stop) - config/box3/script/<项目>/app.js 自动发现,支持手动开关,默认禁用 - config/box3/storage/ 持久化数据存储 - ~100 项 Box3 风格 API + ~72 项 MC 原生扩展(记分板、队伍、边界、粒子等)
…,config): 使用命名空间模式重构实体和玩家 API 并清理配置;feat(box3js-storage): 新增 storage.keys() 方法 - 移除未使用的"🚫 不适用"状态分类 - 新增 console API 完整文档(log/debug/warn/error/assert/clear) - 新增 sleep API 线程阻塞功能说明 - 新增 world 命名空间下的项目间消息系统文档 - 重构 world API 为 query/effect/sound 子命名空间 - 更新 entity API 使用 equipment/effect 命名空间模式 - 重构 player API 为 inventory/effect/sound 命名空间 - 新增 store.keys() 方法文档 - 新增 /box3script create 命令文档 - 更新命名空间 API 章节以明确 MC 扩展边界 - 更新统计数据和最后修订时间 - 新增 EffectNS 和 EquipmentNS 嵌套类以优化实体 API 代码组织 - 将 addEffect() 和 setEquipment() 方法移至对应命名空间 - 移除实体类中冗余的 sound 方法 - 创建 InventoryNS、EffectNS 和 SoundNS 嵌套类用于玩家 API - 将 inventory、effect 和 sound 相关方法移至其命名空间 - 用 NativeObject 替代 LinkedHashMap 以保持一致性 - 使用 ScriptableObject 实现正确的 JavaScript 对象处理 - 实现 keys() 方法,以字符串数组形式返回所有存储键 - 无需遍历即可访问 storage 中所有可用键 - 保持与现有存储操作的一致性 - 移除 Config 类中未使用的导入和示例配置选项 - 移除演示配置和校验逻辑以简化 Config 类 - 仅保留核心配置规范构建器
- 新增游戏规则章节,包含 getGameRule/setGameRule API - 新增 world.onMessage 处理器,支持跨脚本通信 - 将项目间消息传递替换为以下完整章节: - 记分板 API - Boss条 API - 队伍 API - 世界边界 API - 闪电/烟花/粒子/掉落物 API - 爆炸/声音 API - 射线追踪/查询 API - 消息/命令 API - 整合并重新组织现有 API 文档 - 更新实体 API,增强效果和装备相关方法 - 为玩家新增物品/效果/属性/声音/维度 API - 新增 voxels.setSpawner API - 更新统计:MC 原生扩展从约 83 项增加至约 92 项 BREAKING CHANGE: 将实体命名空间 API 重构为直接方法调用 (effect.add -> addEffect,equipment.set -> setEquipment)
- 移除主类中未使用的 ModConfig 导入和注册 - 删除仅处理配置规范的空白 Config 类 - 为所有脚本命令反馈消息添加语言支持 - 将硬编码的文字组件替换为可翻译组件 - 在 en_us.json 中为多种命令响应添加新的语言键 - 为项目列表中的启用/禁用标签实现多语言支持 - 添加一次性批量启用/禁用所有项目的功能
- 添加接受 GameVector3 参数的 lookAt 方法重载(实体/玩家)
- 添加接受 GameVector3 参数的 navigateTo 方法重载(实体)
- 添加 flying 属性访问器(玩家飞行状态控制)
- 添加 collision 属性访问器(玩家碰撞行为控制)
- 添加 setPlayerListName 方法(自定义玩家 Tab 列表显示名称)
- 添加 addExperienceLevels 方法(增加玩家经验等级)
- 为方块操作添加接受 GameVector3 参数的重载方法(setVoxel/fillVoxel/countVoxel/setVoxelId/getVoxel/getVoxelId/getVoxelName/setSpawner/getVoxelRotation)
- 为世界操作添加接受 GameVector3 参数的重载方法(strikeLightning/launchProjectile/launchFirework/spawnParticle/spawnParticleCircle/dropItem/entitiesInRadius/getBiome/explode/playSound)
- 改进命令执行中的项目检测,为 require() 支持自动检测项目名称并使用 require('./app') 替代直接文件评估
docs: 移除过时的 BOX3_API_MAPPING 文档
BREAKING CHANGE: BOX3 API 映射文档已被移除,因其内容已过时
- 优先检查项目目录中的 dist/app.js 文件 - 若 dist/app.js 不存在,则回退到根目录的 app.js - 更新模块脚本提供者,同时搜索 dist 和根目录 此变更允许脚本引擎适配主 JavaScript 文件位于 dist 文件夹或项目根目录的项目。
- 将 isInvulnerable/setInvulnerable 替换为 invulnerable 属性 - 将 isGlowing/setGlowing 替换为 glowing 属性 - 为玩家 API 文档新增 getOpLevel 方法 - 更新示例代码以使用新的属性语法 - 相应更新文档目录
新增 player.dialog() 方法,支持显示带有可配置内容和选项的模态对话框。 该方法接收包含 content 和 options 属性的配置对象,并返回选中的索引和值。 docs(api): 更新数学文档中 GameRGBAColor.copy 的用法 将示例从直接使用 a.copy() 改为先创建新的 GameRGBAColor 实例再调用 copy(), 使浅拷贝操作在文档中更清晰。 refactor(api): 将世界属性转换为方法调用 将 world.projectName 和 world.currentTick 从属性改为方法调用, 在文档示例和 API 参考表中均添加括号。 fix(cmd): 移除本地化系统并简化命令消息 将所有可翻译组件替换为字符串字面量,并移除语言文件资源。 此举简化了命令输出,移除了对本地化文件的依赖,同时保持相同功能。
BREAKING CHANGE: 更新 README 以反映新的基于 TypeScript 的项目模板、 更新的 API 描述和修订的安装说明。该模组现在使用 Rhino 1.9.1 配合 Babel 转译为 ES5 以实现兼容性,而非直接支持 ES5/ES6。 - 在 README 顶部添加测试版警告提示 - 更新功能章节,包含 TypeScript 支持、CommonJS 模块和 esbuild 集成 - 修订安装步骤,反映 JAR 放置位置和依赖要求 - 重写快速入门指南,演示使用 npm install 和构建流程的 TypeScript 项目创建工作流 - 更新命令参考表,使用更简洁的描述 - 添加测试版已知限制章节 - 更新事件示例,使用函数声明替代箭头函数 - 修改构建输出路径描述 fix(command): 实现 TypeScript 项目模板复制功能 - 新增 TEMPLATE_FILES 数组,包含 TypeScript 项目模板路径 - 创建 copyTemplate 方法,从 classpath 复制 TypeScript 模板文件 - 更新项目创建成功消息,包含 npm 构建说明 - 添加 InputStream 导入以支持模板文件读取 - 将硬编码的 JavaScript 模板替换为正确的 TypeScript 模板文件, 包括 package.json、tsconfig.json、build.mjs 和类型声明文件
BREAKING CHANGE: 出于安全原因移除了 `/box3script eval <code>` 命令 - 更新 `/box3script create <name>` 命令,生成包含完整项目结构的 TypeScript 脚手架 - 模板改为使用 GameEntity 替代 Entity 接口 - 将接口从 Entity 重命名为 GameEntity,World 重命名为 GameWorld, StorageAPI 重命名为 GameStorage,Player 重命名为 GamePlayer, Voxels 重命名为 GameVoxels,Console 重命名为 GameConsole - 更新文档以反映新的 TypeScript 工作流和项目结构
- 添加带有复制到剪贴板功能的可点击路径组件 - 移除 box3script 中已弃用的 'file' 命令 - 移除 box3script 中已弃用的 'run' 命令 - 添加使用 'off <project>' 子命令禁用特定项目的功能 - 改进项目创建成功消息的格式 refactor(types): 将 DataStorage 重命名为 GameDataStorage 以提高清晰度 - 将 globals.d.ts 中的 DataStorage 接口重命名为 GameDataStorage - 更新所有从 DataStorage 到 GameDataStorage 的引用 - 更新文档注释以反映新的接口名称
- 移除已弃用的 `/box3script file` 和 `/box3script run` 命令 - 更新 `/box3script on` 命令描述,反映立即执行的行为 - 添加 `/box3script watch` 命令,支持文件监控和热重载 - 添加通过 `/box3script stop <project>` 停止特定项目的功能 - 将文档中的 data 目录从 `data/` 重命名为 `storage/` docs(storage): 增强 storage API 文档,添加缓存细节说明 - 更新 storage API 以反映内存缓存能力 - 阐明跨项目共享存储功能 - 添加内存缓存和持久化章节,说明并发访问 - 更新示例,使用 getGroupStorage 实现共享排行榜 refactor(script): 通过提取工具方法优化 Box3JSEntity - 将内联注册表查找替换为 Box3ScriptUtils 辅助方法 - 将 LivingEntity 类型转换提取为私有 asLiving() 方法 - 将 lookAt 实现移至工具类以减少重复代码 - 移除未使用的导入(ResourceLocation、UUID、BuiltInRegistries) refactor(player): 精简玩家能力更新和注册表查找 - 引入 updateAbility() 辅助方法处理玩家能力 - 将直接注册表查找替换为 Box3ScriptUtils 查找方法 - 将 lookAt 实现移至工具类 - 添加缺失的 Consumer 导入 feat(storage): 为存储操作实现内存缓存 - 为 JSON 存储文件添加基于 ConcurrentHashMap 的缓存 - 实现项目命名空间解析以实现数据隔离 - 添加对缓存数据映射的同步访问 - 通过减少磁盘 I/O 操作提升性能 refactor(voxels): 使用工具方法替换注册表查找 - 使用 Box3ScriptUtils.lookupBlock 替代直接注册表访问 - 将 ResourceLocation 解析替换为工具查找方法 - 简化刷怪笼功能中的实体类型查找 - 移除冗余的注册表访问代码
- 添加沙箱模式命令,用于追踪和回滚脚本更改 - 实现二段跳 API,包含 canDoubleJump 和 doubleJumpPower 属性 - 添加项目级的 bossbar、记分板和队伍管理 - 支持停止脚本时按项目清理资源 - 为命令中的项目名称添加 Tab 自动补全 - 更新文档以反映新功能和改进的命令用法
- 添加 hp 属性表示当前生命值 - 添加 maxHp 属性表示最大生命值 - 包含中英文文档注释
- 添加 getHp()、setHp()、getMaxHp() 和 setMaxHp() 方法 - 实现适当的生命值验证和钳位处理 - 为生命值修改操作添加沙箱追踪 perf(build): 通过正则替换优化构建脚本 - 将静态字符串替换改为动态正则匹配 - 添加 typedArrayCheck 函数以提高可维护性 - 在打包过程中启用压缩 chore(tsconfig): 更新 TypeScript 配置 - 将 target 和 module 升级为 ESNext - 添加 ESNext 库支持
BREAKING CHANGE: 项目名称更新为包含中文副标题, 移除了安装章节,整合了 API 参考, 并将重载命令从 `/box3script reload` 更改为 `/box3script watch`
- 从项目标题中移除 "Shendao Code" - 将命令示例从 "/box3script reload mygame" 更新为 "/box3script on mygame" - 明确说明 Box3JS 受 Box3 编程风格启发而非完全遵循 feat(player): 移除二段跳功能 - 移除二段跳相关 API:canDoubleJump、doubleJumpPower 和 doubleJump() - 清理中英文 API 文档中的相关说明 - 移除 Box3JSPlayer.java 中的实现代码 - 更新 README 功能列表,移除二段跳相关内容
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.